const { Module } = require("module")

class Container {
    static of (value) {
        return new Container(value)
    }
    constructor(value){
        this._value = value
    }
    map(fn){
        return Container.of(fn(this._value))
    }
}
class MayBe {
    static of (value) {
        return new MayBe(value)
    }
    isNothing(){
        // return this._value === null || this._value === undefined
        //根据练习4修改
        return !this._value
    }
    constructor(x){
        this._value = x
    }
    map(fn){
        return this.isNothing()?this:MayBe.of(fn(this._value))
    }
}
module.exports = { Container, MayBe }